package com.kimoge.spring6.iocimpl.core;

import java.io.File;

/**
 * @author kimoge
 * @date 2025/8/28
 * @description
 */
public interface ApplicationContext {
    /**
     * 根据参数返回所需要的bean
     * @param name 类路径
     * @param requiredType 所需要返回的类对象类型
     * @return 创建的类对象
     * @throws Exception
     */
    <T> T getBean(String name, Class<T> requiredType) throws Exception;

    /**
     * 根据注解创建相应的bean，并注入相应的属性
     */
    void createBean() throws Exception;

    void loadBean(File file) throws Exception;
}
